/**
 * 
 */
package test;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * <pre>
 * <b>.</b>
 * <b>Description:一直请求读取消息的方式</b> 
 * 
 * <b>Author:</b> yufeng@yazhai.com
 * <b>Date:</b> 2015年8月17日 下午4:13:45
 * <b>Changelog:</b>
 *   Ver   Date                  Author              Detail
 *   ----------------------------------------------------------------------
 *   1.0   2015年8月17日 下午4:13:45    yufeng@yazhai.com     new file.
 * </pre>
 */
public class ReceiveMsg {

	private static String USERNAME = ActiveMQConnection.DEFAULT_USER;

	private static String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;

	private static String BROKERURL = ActiveMQConnection.DEFAULT_BROKER_URL;

	public static void main(String[] args) {
		ConnectionFactory factory;// 链接创建工厂
		Connection connection = null;// 链接
		Session session = null;// 回话
		Destination desion;// 消息发送目的地
		MessageConsumer message = null; // 消息消费者

		// 实例化链接工厂
		factory = new ActiveMQConnectionFactory(ReceiveMsg.USERNAME,ReceiveMsg.PASSWORD, ReceiveMsg.BROKERURL);

		try {
			// 实例化链接
			connection = factory.createConnection();
			connection.start();// 启动链接
			// 创建Session true 、false :第一个是否有事物
			// 确认方式
			// Session.AUTO_ACKNOWLEDGE 自动确定 当客户端 从onMessage 方法成功读取消息并返回的时候回自动确认
			//
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			// 创建消息队列
			desion = session.createQueue("测试消息");
			// 创建消息消费者
			message = session.createConsumer(desion);
			
			//一直读取消息
			while (true) {
				TextMessage txt = (TextMessage) message.receive(10000);// 接收消息的间隔时间
																		// 可以设置每间隔
				if (txt == null) {
					break;
				}
				System.out.println("接收到的消息:" + txt.getText());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}
